home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / Macintosh Programmer’s Workshop / MPW 3.1 / MPW / Interfaces / CIncludes / Power.h < prev    next >
Text File  |  1990-12-13  |  4KB  |  161 lines

  1. /************************************************************
  2.  
  3. Created: Thursday, September 28, 1989 at 12:21 PM
  4.     Power.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.     Copyright Apple Computer, Inc.    1989
  9.     All rights reserved
  10.  
  11. ************************************************************/
  12.  
  13.  
  14. #ifndef __POWER__
  15. #define __POWER__
  16.  
  17. #ifndef __TYPES__
  18. #include <Types.h>
  19. #endif
  20.  
  21.  
  22. /* PMgrResultCode values
  23.  */
  24.  
  25. #define pmBusyErr -13000        /* PMgr stuck busy */
  26. #define pmReplyTOErr -13001     /* Timed out waiting to begin reply handshake */
  27. #define pmSendStartErr -13002    /* PMgr did not start handshake */
  28. #define pmSendEndErr -13003     /* During send, PMgr did not finish handshake */
  29. #define pmRecvStartErr -13004    /* During receive, PMgr did not start handshake */
  30. #define pmRecvEndErr -13005     /* During receive, PMgr did not finish handshake */
  31.  
  32. /* bit positions for PowerClockByte
  33.  */
  34.  
  35. #define pmSCCBit 1                /*SCC clock*/
  36. #define pmModemBit 3            /*Internal modem power*/
  37. #define pmSerialBit 4            /*Serial drivers power*/
  38. #define pmVoltBit 6             /*-5 volt power*/
  39. #define pmDevEnableBit 7
  40.  
  41. /* Masks for PowerClockByte */
  42.  
  43. #define pmSCCMask 0x2
  44. #define pmModemMask 0x8
  45. #define pmSerialMask 0x10
  46. #define pmVoltMask 0x40
  47. #define pmDevEnableMask 0x80
  48.  
  49. /* Bit positions for ModemByte
  50.  */
  51.  
  52. #define modemOnBit 0
  53. #define ringWakeUpBit 2
  54. #define modemInstalledBit 3
  55. #define ringDetectBit 4
  56. #define modemOnHookBit 5
  57.  
  58. /* masks for ModemByte */
  59.  
  60. #define modemOnMask 0x1
  61. #define ringWakeUpMask 0x4
  62. #define modemInstalledMask 0x8
  63. #define ringDetectMask 0x10
  64. #define modemOnHookMask 0x20
  65.  
  66. /* bit positions for BatteryByte */
  67.  
  68. #define chargerConnBit 0
  69. #define hiChargeBit 1
  70. #define chargeOverFlowBit 2
  71. #define batteryDeadBit 3
  72. #define batteryLowBit 4
  73. #define connChangedBit 5
  74.  
  75. /* masks for BatteryByte */
  76.  
  77. #define chargerConnMask 0x1
  78. #define hiChargeMask 0x2
  79. #define chargeOverFlowMask 0x4
  80. #define batteryDeadMask 0x8
  81. #define batteryLowMask 0x10
  82. #define connChangedMask 0x20
  83.  
  84. /* Commands for PMOp function */
  85.  
  86. #define powerCntl 0x10            /* Power/clock control */
  87. #define powerRead 0x18            /* Power/clock control */
  88. #define modemRead 0x58            /* Internal modem setup */
  89. #define batteryRead 0x68        /* Battery/charger level and status */
  90. #define setWakeUp 0x80            /* Set Wake-up timer */
  91. #define disableWakeUp 0x82        /* Disable Wake-up timer */
  92. #define readWakeUp 0x88         /* Read Wake-up timer */
  93.  
  94. /* SleepQRec.sleepQFlags
  95.  */
  96.  
  97. #define noCalls 1
  98. #define noRequest 2
  99.  
  100. typedef char PowerClockByte;
  101. typedef char ModemByte;
  102. typedef char BatteryByte;
  103.  
  104.  
  105. typedef long PMResultCode;
  106.  
  107. struct PMParamBlock {
  108.     short pmCommand;
  109.     short pmCount;
  110.     Ptr pmSendBuff;
  111.     Ptr pmReceiveBuff;
  112. };
  113.  
  114. typedef struct PMParamBlock PMParamBlock;
  115. typedef PMParamBlock *PMParamBlockPtr;
  116.  
  117. struct SleepQRec {
  118.     struct SleepQRec *sleepQLink;
  119.     short sleepQType;            /*type = 16*/
  120.     ProcPtr sleepQProc;         /*Pointer to sleep routine*/
  121.     short sleepQFlags;
  122. };
  123.  
  124. typedef struct SleepQRec SleepQRec;
  125. typedef SleepQRec *SleepQRecPtr;
  126.  
  127. #ifdef __cplusplus
  128. extern "C" {
  129. #endif
  130. PMResultCode PMOp(PMParamBlockPtr pBlockPtr)
  131.     = {0x205F,0xA085};
  132. long IdleUpdate(void)
  133.     = 0xA285;
  134. long GetCPUSpeed(void)
  135.     = {0x70FF,0xA485};
  136. void EnableIdle(void)
  137.     = {0x7000,0xA485};
  138. void DisableIdle(void)
  139.     = {0x7001,0xA485};
  140. void SleepQInstall(SleepQRecPtr qRecPtr)
  141.     = {0x205F,0xA28A};
  142. void SleepQRemove(SleepQRecPtr qRecPtr)
  143.     = {0x205F,0xA48A};
  144. void AOn(void)
  145.     = {0x7004,0xA685};
  146. void AOnIgnoreModem(void)
  147.     = {0x7005,0xA685};
  148. void BOn(void)
  149.     = {0x7000,0xA685};
  150. void BOnIgnoreModem(void)
  151.     = {0x7001,0xA685};
  152. void AOff(void)
  153.     = {0x7084,0xA685};
  154. void BOff(void)
  155.     = {0x7080,0xA685};
  156. #ifdef __cplusplus
  157. }
  158. #endif
  159.  
  160. #endif
  161.